load("//swift:rules.bzl", "swift_cc_binary")
load("//misc/bazel:pkg_runfiles.bzl", "pkg_runfiles")

swift_cc_binary(
    name = "extractor.real",
    srcs = glob([
        "*.h",
        "*.cpp",
    ]),
    visibility = ["//swift:__pkg__"],
    deps = [
        "//swift/extractor/config",
        "//swift/extractor/infra",
        "//swift/extractor/invocation",
        "//swift/extractor/remapping",
        "//swift/extractor/translators",
        "//swift/third_party/swift-llvm-support",
        "@absl//absl/strings",
    ],
    linkopts = select({
        "@platforms//os:macos": ["-headerpad_max_install_names"],
        "//conditions:default": [],
    }),
)

sh_binary(
    name = "extractor",
    srcs = ["extractor.sh"],
    data = [":extractor.real"],
)

pkg_runfiles(
    name = "pkg",
    srcs = [":extractor"],
    excludes = ["extractor.sh"],  # script gets copied as "extractor", no need for the original .sh file
    visibility = ["//swift:__pkg__"],
)
